package com.alks.function.service.produce;

import com.alks.entity.data.entity.dispatch.ManulDispatchDetail;
import com.alks.entity.data.entity.dispatch.ManulDispatchHead;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.request.chengKong.LotNoToStyleRequest;
import com.alks.function.data.request.produce.deleteRequest;
import com.alks.function.data.request.produce.dispatchHeadRequest;
import com.alks.function.data.request.produce.doDispatchRequest;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
import java.util.Map;

public interface CuttingDispatchHeadService {

    ResponseInfo dispatchHeadList(dispatchHeadRequest request);

    ResponseInfo dispatchDetailList(dispatchHeadRequest request);

    ResponseInfo loadCutLabelTree(String lotNo, List<String> lsNos);

    ResponseInfo loadCuttingCheckerList(LotNoToStyleRequest request);

    ResponseInfo searchList(ManulDispatchHead manulDispatchHead);

    ResponseInfo dispatchDetailSizeList(ManulDispatchHead manulDispatchHead);

    ResponseInfo loadLsNoByLotNo(String lotNo);

    ResponseInfo delete(List<ManulDispatchHead> list);

    ResponseInfo planNoPrint(String dispatchType, HttpServletRequest request) throws IOException;

    void updatePrintStatus(String dispatchNo);

    ResponseInfo returnLotNo(String searchKey);

    ResponseInfo returnRoundAndPro(String lotNo);

    List<Map<String, String>> loadCombineDispatchSizeNo(String lotNo, List<String> lsNos);

    ResponseInfo loadCuttingCheckerList2(LocalDate dispatchDate, String cutWorkerName);

    ResponseInfo cutWorkerDispatchHeadList(LocalDate dispatchDate, String workerId);

    ResponseInfo doDispatch(doDispatchRequest request);

    ResponseInfo loadCutLabelTrees(String lotNo, List<String> lsNos,List<String> process);

    List<Map<String, Object>> loadManulWorkerList(Date dispatchDate, String searchKey);

    ResponseInfo insertIntoDispatch(List<ManulDispatchDetail> details, String lotNo, Date dispatchDate, String manulWorkerId);

    ResponseInfo summaryPrintTotal(Date beginDate, Date endDate);

    ResponseInfo deleteByDispatchNo(List<deleteRequest> request);

    ResponseInfo summaryPrint(LocalDate beginDate, LocalDate endDate);

    ResponseInfo printLabel(dispatchHeadRequest request);

    ResponseInfo UnPrintLabel();

    ResponseInfo planNoCombinePrint(String planNo);

    ResponseInfo printCombineLabel(String planNo);
}
